/*
 * @Description: 
 * @Author: Junhuang
 * @Date: 2022-02-15 21:40:33
 * @LastEditTime: 2022-02-17 21:04:26
 * @LastEditors: Junhuang
 * @Reference: 
 */
'use strict';
// 引入
const crypto = require('crypto');
module.exports = app => {
  const { INTEGER, STRING, DATE, ENUM, TEXT } = app.Sequelize;
  // 配置（重要：一定要配置详细，一定要！！！）
  const Video_detail = app.model.define('video_detail', {
    id: {
      type: INTEGER(20),
      primaryKey: true,
      autoIncrement: true
    },
    no: {
      type: INTEGER(4),
      allowNull: false,
      defaultValue: 0,
      comment: '集号'
    },
    title: {
      type: STRING(100),
      allowNull: false,
      defaultValue: '',
      comment: '子标题'
    },
    video_id: {
      type: INTEGER,
      allowNull: false,
      defaultValue: 0,
      comment: '作品id'
    },
    url: {
      type: STRING,
      allowNull: true,
      defaultValue: '',
      comment: '视频链接'
    },
    description: {
      type: TEXT,
      allowNull: false,
      defaultValue: '',
      comment: '子描述',
    },
    created_time: {
      type: DATE,
      // 获取器，对获取的数据库中的字段进行处理，此处将数据库中的时间字段转换为timestamp
      get() {
        const val = this.getDataValue('created_time')
        return (new Date(val)).getTime()
      }
    },
    updated_time: {
      type: DATE,
      // 获取器，对获取的数据库中的字段进行处理，此处将数据库中的时间字段转换为timestamp
      get() {
        const val = this.getDataValue('updated_time')
        return (new Date(val)).getTime()
      }
    }
  }, {
    timestamps: true, // 是否自动写入时间戳
    tableName: 'video_detail', // 自定义数据表名称
  });

  // 关联关系
  Video_detail.associate = function (models) {
    //关联视频
    Video_detail.belongsTo(app.model.Video);
  }

  return Video_detail;
};